#!/usr/bin/env node

const Event = require('./05-event.js');

class Dog extends Event {
  constructor(name, energy) {
    super();
    this.#name=name;
    this.#energy=energy;
    this.startTimer();                   
  }
  get name() { return this.#name;  }
  get energy() { return this.#energy;  }
  setEnergy(e) {
    this.#energy = e;
    this.startTimer();              
  }
  #name = '';
  #energy = 0;
  #timer = null;

  startTimer() {
    if(this.#timer !== null) return;
    this.#timer = setInterval(() => {
      if(this.#energy > 0) {
        this.emit('bark');
        this.#energy--;                    
      } else {
        clearInterval(this.#timer);
        this.#timer = null;                       }   
    }, 1000);
  } 
}

module.exports = Dog;

